package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.TSCServiceTypeCategory;
import com.shrcl.engineerprocess.domain.TSCServiceTypeOptionItem;
import com.shrcl.engineerprocess.domain.impl.TSCServiceTypeImpl;
import com.shrcl.engineerprocess.domain.proxy.TSCServiceTypeProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import edu.fudan.mylang.pf.INamedModelObject;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = TSCServiceTypeImpl.class)
public interface TSCServiceType extends IModelObject, INamedModelObject {
  public abstract TSCServiceTypeCategory getCategory();
  
  public abstract TSCServiceType setCategory(final TSCServiceTypeCategory category);
  
  public abstract String getTypeid();
  
  public abstract TSCServiceType setTypeid(final String typeid);
  
  public abstract String getName();
  
  public abstract TSCServiceType setName(final String name);
  
  public abstract Collection<TSCServiceTypeOptionItem> getOptionItems();
  
  public abstract TSCServiceTypeOptionItem createAndAddtoOptionItems();
  
  public abstract TSCServiceTypeOptionItem createAndAddtoOptionItems(final Procedure1<TSCServiceTypeOptionItem> updater);
  
  public abstract TSCServiceType removeFromOptionItems(final TSCServiceTypeOptionItem tSCServiceTypeOptionItem);
  
  public abstract TSCServiceType removeAllOptionItems();
  
  public abstract String getEntityName();
  
  public abstract TSCServiceTypeProxy toProxy();
}
